package model

import "time"

// 对于users table 以及注册验证
type User struct {
	//用户ID
	ID     uint   `gorm:"primary_key" json:"id"`
	Mobile string `gorm:"type:varchar(20);unique" json:"mobile" binding:"required,NameValid"` //必传 手机号（添加注释 swagger在线文档可识别）
	Token  string `gorm:"type:varchar(40)" json:"token"`

	Passwd   string `gorm:"type:varchar(40);not null" json:"passwd" binding:"required"`
	Passwdr  string `gorm:"-" json:"passwdr" bind:"required"`
	Avatar   string `gorm:"type:varchar(150)" json:"avatar"`
	Sex      string `gorm:"type:varchar(2)" json:"sex"`
	Nickname string `gorm:"type:varchar(20);unique" json:"nickname" binding:"required"`
	//加盐随机字符串6
	Salt   string `gorm:"type:varchar(10)"`
	Online int    `gorm:"type:int(10)" json:"online"`
	//前端鉴权因子
	Memo string `gorm:"type:varchar(140)" json:"memo"`

	CreatedAt time.Time
	UpdatedAt time.Time
	DeletedAt *time.Time `sql:"index"`
}

// 登陆验证
type UserLogin struct {
	Mobile string `json:"mobile" binding:"required,NameValid"`
	Passwd string `json:"passwd" binding:"required"`
}

// 添加好友验证
type ContactValid struct {
	DstId  string `json:"dstid"`
	UserId int64  `json:"userid" binding:"required"`
	Dstobj int64  `json:"dstobj"`
	Cmd    int64  `json:"cmd"`
}
